/*
 * Copyright 2025 Clidey, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const ONBOARDING_STORAGE_KEY = '@clidey/whodb/onboarding-completed';

export const hasCompletedOnboarding = (): boolean => {
    try {
        const completed = localStorage.getItem(ONBOARDING_STORAGE_KEY);
        return completed === 'true';
    } catch {
        return false;
    }
};

export const markOnboardingComplete = (): void => {
    try {
        localStorage.setItem(ONBOARDING_STORAGE_KEY, 'true');
    } catch (error) {
        console.error('Failed to save onboarding state:', error);
    }
};

export const resetOnboarding = (): void => {
    try {
        localStorage.removeItem(ONBOARDING_STORAGE_KEY);
    } catch (error) {
        console.error('Failed to reset onboarding state:', error);
    }
};

export const shouldShowOnboarding = (isSampleDatabase: boolean): boolean => {
    return isSampleDatabase && !hasCompletedOnboarding();
};
